package com.love.cloud.common.core.interfaces;


import java.util.Collection;

/**
 * Description: <br/>
 * date: 2022/2/23 9:36<br/>
 *
 * @author wangzhiqiong <br/>
 */
public interface TreeSupport<E, ID> {

    ID getId();

    ID getParentId();

    Collection<E> getChildren();

    void setParentId(ID parentId);

    void setChildren(Collection<E> children);

    default String getPath(){
        return  null;
    }

    default void setPath(String path){
    }

    /**
     * 最深的子节点
     * @return
     */
    default E getDeepestChildNode(){return  null;};

    /**
     * 最深的子节点
     * @return
     */
    default void setDeepestChildNode(E node){};

    /**
     * 树的深度
     * @return
     */
    default Integer getTreeDepth(){return  null;};

    /**
     * 树的深度
     * @return
     */
    default void setTreeDepth(Integer treeDepth){};

    /**
     * 树的最大深度
     * @return
     */
    default Integer getMaxTreeDepth(){return  null;};

    /**
     * 树的最大深度
     * @return
     */
    default void setMaxTreeDepth(Integer maxTreeDepth){};

    /**
     * 行政区划号 例如：330304
     */
    default String getDivision(){return null;};

    default void setDivision(String division){};

}
